package io.renren.modules.pet.service;

import io.renren.common.page.PageData;
import io.renren.common.service.CrudService;
import io.renren.modules.pet.vo.PetSendVO;
import io.renren.modules.pet.dto.PetSendDTO;
import io.renren.modules.pet.entity.PetSendEntity;
import io.renren.modules.pet.vo.PetTypeChartPieVO;

import java.util.List;
import java.util.Map;

/**
 * 宠物送养信息
 *
 * @author zwp zwp
 * @since 1.0.0 2025-03-07
 */
public interface PetSendService extends CrudService<PetSendEntity, PetSendVO> {
    
    /**
     * 保存
     * @param petSendDTO
     */
    void save(PetSendDTO petSendDTO);
    
    /**
     * 修改
     * @param petSendDTO
     */
    void update(PetSendDTO petSendDTO);

    /**
     * 用户送养集合
     * @param params
     * @return
     */
    List<PetSendVO> listDetailByUser(Map<String, Object> params);

    /**
     * 首页送养集合
     * @param params
     * @return
     */
    List<PetSendVO> homeListDetail(Map<String, Object> params);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    PetSendVO getInfoById(Long id);

    /**
     * 根据idList查询
     * @param IdList
     * @return
     */
    List<PetSendVO> getListByIdList(List<Long> IdList);

    /**
     * 获取用户收藏
     * @param params
     * @return
     */
    List<PetSendVO> getPetCollectByUser(Map<String, Object> params);

    /**
     * 分页
     * @param params
     * @return
     */
    PageData<PetSendVO> petSendPage(Map<String, Object> params);

    /**
     * 送养宠物种类分布
     * @param params
     * @return
     */
    List<PetTypeChartPieVO> getPetTypeChartPie(Map<String, Object> params);

    /**
     * 送养宠物领养状态分布
     * @param params
     * @return
     */
    List<PetTypeChartPieVO> getPetStatusChartPie(Map<String, Object> params);
}